package com.brspace.qualitycontrol.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.brspace.qualitycontrol.entity.Leaveing;
import com.brspace.qualitycontrol.entity.vo.LeaveQueryVo;
import com.brspace.qualitycontrol.entity.vo.LeaveingVo;
import com.brspace.qualitycontrol.utils.R;

/**
 * <p>
 * 请假 服务类
 * </p>
 *
 * @author ${author}
 * @since 2021-04-02
 */
public interface LeaveService extends IService<Leaveing> {
    /**
     * 添加请假/请假申请
     * @param leaveing
     * @return
     */
    R addLeave(Leaveing leaveing);

    /**
     * 分页
     * @param pageParam
     * @param o
     * @return
     */
    IPage<Leaveing> selectPage(Page<Leaveing> pageParam, Object o);

    /**
     * 请假
     * @param leaveingVo
     * @return
     */
    int leaNum(LeaveingVo leaveingVo);

    /**
     * 加班
     * @param leaveingVo
     * @return
     */
    int pubNum(LeaveingVo leaveingVo);

    /**
     * 事假
     * @return
     */
    int findShi(LeaveingVo leaveingVo);

    /**
     * 年假
     * @return
     */
    int findYear(LeaveingVo leaveingVo);

    /**
     * 病假
     * @return
     */
    int findBing(LeaveingVo leaveingVo);

    /**
     * 其他
     * @return
     */
    int findQiTa(LeaveingVo leaveingVo);

    Leaveing findById(String id);

    Leaveing findByPub(String id);

    /**
     * 柱状图
     * @return
     */
    R stateZhu(LeaveingVo leaveingVo);

    IPage<Leaveing> stateList(Page<Leaveing> pageParam, LeaveQueryVo leaveQueryVo);

    R examine(Leaveing leaveing,String userName,String uid);

    R selectPage1(int page,int limit, Object o,String id);

    R chuQin(LeaveingVo leaveingVo);

    R stateList1(int page,int limit, LeaveQueryVo leaveQueryVo, String id);
}
